1

BFC

Block fomatting context (简称BFC)
Inline formatting context (简称IFC)
CSS2.1 中只有 BFC 和 IFC, CSS3 中还增加了 GFC 和 FFC

BFC 定义:
BFC直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。

这些元素会触发BFC:(子元素有浮动 直接在父元素上添加一下内容即可)
1、根元素 -- HTML元素
2、float属性不为none
3、position为absolute或fixed
4、display为inline-block, table-cell, table-caption, flex, inline-flex,
5、overflow不为visible
6、flow-root 意为:触发BFC 兼容不太好 css新加的


BFC功能:
1、让BFC内部元素被包起来
2、让两个相邻元素界限分明

应用场景

BFC 使用场景
面试。。。。剩下时间 避免使用
不要用BFC清除浮动(BFC清除有副作用 用clear:both 或者 display:flow-root )

 //BFC可以包住浮动元素
    
    .father{}
    .child{
        height:100px;
        background:rgba(0,255,0,1);
        margin-top:100px;
    }
    
    //这个父级的高度是从子级开始的 !!!
    //除非触发BFC(加overflow:hidden)父级高度才会从顶部计算
    // 用flow + div 做左右布局
    .father{
        width:100px;
        min-height:600px;
        border:3px solid red;
        float:left;
        margin-right:20px;
    }
    .child{
        min-height:600px;
        border:5px solid green;
        overflow:auto; // display:flow-root
        //如果没有这个BFC 就会跟这个浮动元素不清不楚 想让这两个分隔
    }

BFC 和 文档流

文档流 影响的是这个元素的排列顺序
BFC 影响的是这个元素的宽高


Tong_sunshine
62 声望10 粉丝

看看看! 再看把你眼珠子抠掉!